Software developers frequently use development environments to assist them in developing console applications, graphical user interface applications, websites, and/or web services, for example. Often times, portions of the code used to build applications, for example, may be based upon previously written code for a similar application. Therefore, rather than develop the code from scratch, developers may call into existing code to reuse existing functionality.
Previously written code may be stored in an object store (e.g., a central collaboration server), and an object model may provide a structured object-oriented representation of the codes. An object model may also provide methods for retrieving objects and/or elements of the object from the object store, setting properties of the objects, and/or adding/deleting objects, for example. When a developer wants to retrieve previously written code, the developer runs the object model and initializes an object that retrieves relevant content (e.g., codes) related to the object.
Unfortunately, several problems make it difficult for a development environment and an object model to achieve interoperability. For example, the development environment may target a 32-bit processor architecture and an object model may target a 64-bit processor architecture. Therefore, code cannot be easily transferred between the development environment and the object model because their respective processor architectures are incompatible (e.g., the process may fail because of bitness conflicts). Additionally, code that allows communication between the object model and development environment may be version specific. Therefore, if either the version of the object model or the version of the development environment changes, the code that provides the communication channel between the development environment and the object model may have to be rewritten.